FUNCIONES Y CLASES DE PHP


1. Variables Superglobales

Son arrays asociativos que están siempre disponibles en todos los ámbitos del script para obtener información del entorno, el servidor y el cliente.

Variable Propósito / Definición Uso Típico
$_SERVER Contiene información creada por el servidor web sobre el entorno de ejecución (cabeceras, rutas, host). Obtener la IP del usuario ($_SERVER['REMOTE_ADDR']) o el método de la petición ($_SERVER['REQUEST_METHOD']).
$_GET Contiene variables pasadas al script a través de la URL (método HTTP GET), en la cadena de consulta. Recibir datos de la URL: index.php?id=10.
$_POST Contiene variables pasadas al script a través del método de entrada HTTP POST. Recibir datos de formularios (contraseñas, textos largos, etc.).
$_REQUEST Contiene una combinación de $_GET, $_POST y $_COOKIE. (Uso desaconsejado). Acceder a datos sin importar su origen.
$_SESSION Contiene variables de sesión disponibles para el usuario en múltiples páginas. Requiere session_start(). Mantener el estado de login o un carrito de compras.
$_COOKIE Contiene variables pasadas al script a través de las cookies HTTP. Leer un identificador de usuario o token de seguimiento.
$_FILES Contiene información sobre los archivos subidos al script. Manejar el nombre, tamaño y ubicación temporal de archivos subidos.
$_ENV Contiene variables de entorno pasadas por el sistema operativo o el servidor web. Acceder a claves de configuración específicas del entorno.

2. Funciones de Salida y Depuración

echo

Usada para mostrar una o más cadenas de texto en la salida. Es ligeramente más rápido que print.

Sintaxis:

echo arg1, arg2, ...;

Ejemplo de Uso:

$saludo = "Hola";
echo $saludo, " Mundo!"; # Salida: Hola Mundo!

print

Usada para mostrar una sola cadena de texto. Siempre devuelve el valor 1.

Sintaxis:

print arg;

Ejemplo de Uso:

$resultado = print "Muestra esto.";
# Salida: Muestra esto. ($resultado vale 1)

printf

Muestra una cadena formateada. Permite insertar valores en una plantilla usando especificadores de formato (%s, %d).

Sintaxis:

printf(string $format, mixed ...$values): int|false

Ejemplo de Uso:

printf("El número es: %d, la cadena es: %s", 123, "test");
# Salida: El número es: 123, la cadena es: test

var_dump

Muestra información estructurada y detallada sobre una variable, incluyendo su tipo y su valor. Es la herramienta de depuración más completa.

Sintaxis:

var_dump(mixed $value, mixed ...$values): void

Ejemplo de Uso:

$arr = ["a" => 1, "b" => 2];
var_dump($arr);
/* Salida:
array(2) {
  ["a"]=> int(1)
  ["b"]=> int(2)
}
*/

print_r

Imprime información legible sobre una variable. Es útil para inspeccionar arrays y objetos, mostrando sus claves y valores de forma estructurada.

Sintaxis:

print_r(mixed $value, bool $return = false): string|bool

Ejemplo de Uso:

$arr = ["a" => 1, "b" => 2];
print_r($arr);
# Salida: Array ( [a] => 1 [b] => 2 )

phpinfo

Imprime una gran cantidad de información sobre el estado actual de PHP, incluyendo opciones de compilación, extensiones habilitadas y configuración.

Sintaxis:

phpinfo(int $flags = INFO_ALL): bool

Ejemplo de Uso:

# Muestra la configuración completa de PHP en el navegador
phpinfo();

highlight_file

Colorea (resalta) el código fuente de un archivo PHP usando la sintaxis de HTML. Útil para mostrar código fuente.

Sintaxis:

highlight_file(string $file_name, bool $return = false): string|bool

Ejemplo de Uso:

# Asume que 'index.php' existe
highlight_file('index.php');

exit

Es una construcción del lenguaje (similar a die()) que termina la ejecución del script. Opcionalmente, puede imprimir un mensaje antes de salir.

Sintaxis:

exit(string|int $status = 0): void

Ejemplo de Uso:

if ($error) {
    exit('Ocurrió un error fatal.');
}

3. Funciones de Utilidad, Tipado y Cadenas

Elemento Tipo Propósito / Definición Uso y Ejemplo
isset Función Determina si una variable está declarada y su valor no es NULL. Fundamental para validar datos de entrada. if (isset($_POST['usuario'])) { ... }
empty Función Determina si una variable está vacía. (NULL, false, 0, "", array()). if (empty($nombre)) { echo "Vacío"; }
gettype Función Devuelve el tipo de la variable dada como una cadena (integer, string, array, object, etc.). echo gettype(5); # integer
is_string Función Comprueba si el tipo de una variable es una cadena de texto (string). var_dump(is_string("Hola")); # true
str_replace Función Reemplaza todas las ocurrencias de una subcadena buscada por una de reemplazo. str_replace("mundo", "universo", "Hola mundo.")
strtolower Función Convierte una cadena de texto a minúsculas. strtolower("TEXTO"); # texto
number_format Función Formatea un número con miles agrupados y un punto decimal. number_format(1234.56, 2, ',', '.'); # 1.234,56
constant Función Devuelve el valor de una constante, dado su nombre como cadena. constant("MAX_SIZE")
get_loaded_extensions Función Devuelve un array con los nombres de todas las extensiones PHP cargadas y disponibles. print_r(get_loaded_extensions());

4. Archivos y Control de Flujo HTTP

Elemento Tipo Propósito / Definición Uso y Ejemplo
file_get_contents Función Lee todo el contenido de un archivo en una única cadena de texto. $data = file_get_contents('datos.txt');
file_put_contents Función Escribe una cadena de datos en un archivo. Sobrescribe por defecto, usa FILE_APPEND para añadir. file_put_contents('log.txt', $error, FILE_APPEND);
file_exists Función Verifica si un archivo o directorio existe. if (file_exists('config.php')) { ... }
require_once Construcción Incluye y evalúa un archivo específico. Si ya fue incluido, lo omite. Detiene la ejecución si no se encuentra. require_once 'clase_base.php';
header Función Envía una cabecera HTTP sin procesar al cliente (navegador). Debe invocarse antes de cualquier salida. header('Location: /inicio.php'); exit;

5. Funciones de Iteración de Arrays y JSON

Elemento Tipo Propósito / Definición Uso y Ejemplo
reset Función Establece el puntero interno de un array al primer elemento y devuelve su valor. echo reset($array);
current Función Devuelve el valor del elemento actual al que apunta el puntero. echo current($array);
key Función Devuelve la clave del elemento actual al que apunta el puntero. echo key($array);
next Función Avanza el puntero interno del array un lugar y devuelve el valor del nuevo elemento. echo next($array);
json_encode Función Devuelve la representación JSON de un valor PHP. Crucial para APIs. json_encode($array_datos)
json_decode Función Decodifica una cadena JSON a un valor PHP. Devuelve un objeto por defecto; usa true para array asociativo. json_decode($json_string, true)

6. Clases y Funciones de Fecha/Hora

Clase DateTime

La clase orientada a objetos para manejar fechas y horas de manera robusta.

format(string $format): string

Devuelve la fecha/hora en el formato especificado como cadena.

$fecha->format('Y-m-d H:i:s')

getTimestamp(): int

Devuelve el timestamp UNIX (segundos desde 1970) para el objeto DateTime.

$fecha->getTimestamp()

diff(DateTimeInterface $targetObject): DateInterval

Calcula la diferencia entre dos objetos DateTime, devolviendo un objeto DateInterval.

$diferencia = $fecha1->diff($fecha2);

Funciones de Configuración de Fecha

Funciones globales para establecer el contexto de la fecha/hora.

date_default_timezone_set(string $timezone_identifier): bool

Establece la zona horaria predeterminada que se utilizará en todas las funciones de fecha/hora.

date_default_timezone_set('Europe/Madrid');

setlocale(string|int $category, string|array $locales, ...): string|false

Establece la configuración regional (locale), afectando a la moneda, el alfabeto y el formateo de tiempo (usado por strftime).

setlocale(LC_TIME, 'es_ES.utf8');

strftime(string $format, ?int $timestamp = null): string|false Formatea una fecha/hora local según la configuración regional (locale) establecida por setlocale. (Obsoleta en PHP 8.1).

strftime('%A, %d de %B');

7. Base de Datos - Extensión PDO

PDO (PHP Data Objects) es una extensión que proporciona una interfaz uniforme para acceder a bases de datos.

Clase Principal: PDO

Representa la conexión a la base de datos.

prepare(string $query, array $options = []): PDOStatement|false

Prepara una sentencia SQL para su ejecución. Fundamental para usar sentencias preparadas y prevenir la inyección SQL.

$stmt = $pdo->prepare('SELECT * FROM users WHERE id = :id');

query(string $query, ?int $fetchMode = null, ...$fetchModeArgs): PDOStatement|false

Ejecuta una sentencia SQL directamente y devuelve un PDOStatement. Se usa solo para sentencias sin valores variables.

$stmt = $pdo->query('SELECT name FROM roles');

beginTransaction(): bool

Inicia una transacción, asegurando que las siguientes operaciones se traten como una única unidad atómica.

$pdo->beginTransaction();

commit(): bool

Confirma una transacción, haciendo permanentes los cambios.

$pdo->commit();

rollBack(): bool

Revierte una transacción, deshaciendo todos los cambios desde que se inició.

$pdo->rollBack();

getAttribute(int $attribute): mixed

Recupera el valor actual de un atributo de la conexión PDO.

$driver = $pdo->getAttribute(PDO::ATTR_DRIVER_NAME);

Clase Resultado: PDOStatement

Representa una sentencia preparada y el conjunto de resultados asociado.

execute(?array $params = null): bool

Ejecuta la sentencia preparada. Opcionalmente, se le pasa un array de valores para enlazar a los marcadores.

$stmt->execute([':id' => 5]);

bindParam(string|int $param, mixed &$var, int $type = PDO::PARAM_STR, ...): bool

Enlaza una variable PHP a un marcador de posición. El valor se obtiene en el momento de la ejecución.

$stmt->bindParam(':id', $valor);

fetchObject(?string $class = "stdClass", array $constructorArgs = []): object|false

Obtiene la siguiente fila del conjunto de resultados y la devuelve como un objeto.

$obj = $stmt->fetchObject();

rowCount(): int

Devuelve el número de filas afectadas por la última sentencia DELETE, INSERT, o UPDATE.

$count = $stmt->rowCount();

Clase de Excepción: PDOException

Manejo de errores de base de datos.

getMessage(): string

Devuelve el mensaje de error asociado a la excepción PDO.

echo $e->getMessage();

getCode(): string|int

Devuelve el código de error SQLSTATE (código alfanumérico) o el código de error específico del controlador.

echo $e->getCode();

8. Otras Extensiones y Clases

Elemento Tipo Propósito / Definición Uso Típico
MYSQLI Clase/Extensión Extensión de PHP moderna para interactuar con bases de datos MySQL. Soporta POO y programación procedural. Conexión y consultas directas a MySQL.
DOMDocument Clase Clase que proporciona una forma de trabajar con documentos HTML o XML usando el DOM (Document Object Model). Analizar (parsear) documentos HTML o construir archivos XML.